ZahlDifferences from Standard Lua

These notes should be read as an emendation to parts of the Lua manual. The differences arise from two sources: changes to the Lua interpreter and to the use of a prelude which is executed before anything else.

Lexical changes

Hard spaces in the source are interpreted as blank spaces. Variable names may contain the characters $,!,?,@ and `. The symbol '\' may be used instead of 'function'. The symbol '=>' may be used instead of 'return'.

Syntactic changes

Local variables can be initialised from table values.
    local x, y, ... in table_expr
is equivalent to
    local t = table_expr
    local x, y, .. . = t.x, t.y, ...
Binary operators +, -, *, /, ^, %, |, &, ~, <<, >> followed by = can be used to update their left hand operand. So
    x & = y
is equivalent to
    x = x & y
Vicente's No Floating-Point Option patch has been applied to the Lua sources. The type function altered to show int32 instead of number.

In the prelude

Format strings may be used as functions. The variables $0, ... , $9 are defined. The type function is redefined. The metatable of the imath library is given a key
__type = "integer"
.